Lookerで利用可能な「派生テーブル」を試してみる(SQL派生テーブル) #looker

Lookerで利用可能な「派生テーブル」を試してみる(SQL派生テーブル) #looker

Clock Icon2019.10.02

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Lookerには『派生テーブル』という考え方・機能が存在します。説明を引用すると『Lookerの派生テーブル機能はデータベース内にまだ存在しない新たなテーブルを作成するための手段であり、分析の洗練度を高めることができるLookerの重要なツール』となります。

この派生テーブルには、LookMLを使用して構築する『ネイティブ派生テーブル』とSQLを使って構築する『SQL派生テーブル』の2種類があり、その内容に対して設定によって『永続性』(任意のタイミング・条件でデータを再生成)を持たせることが可能となっています。

派生テーブルに関する詳細な解説は以下ドキュメントをご参照ください。

当エントリでは、2種類の派生テーブルのうち、『SQL派生テーブル』の内容について、実際にSQLを使いながら作成・活用していく流れを見ていきたいと思います。

目次

 

SQL Runner上でSQLを実行

SQL派生テーブルの作成は、『SQL Runner』から行うと良いでしょう。この機能では実際にSQLを対象データベースに対して実行出来、その結果を持って色々出来る便利なツールです。

メニューの[Develop]から[SQL Runner]を選択。

対象データベース接続とスキーマを左側のメニュー(CONNECTION)から選び、任意のSQLを書き入れます。

ここでは、『AWS re:Invent 2018に関連したDevelopers.IOのブログ投稿データ』をクエリしています。下記エントリで紹介した可視化部分で使っていたデータですね。(※若干条件は異なりますが)

ここでは、ベースとなる『投稿データ』に『ユーザマスタ』と『シリーズマスタ』を結合させ、(結合した)シリーズの名称でイベントに関する情報のみを抽出しています。

試しに実行してみます。結果が表示されました。画面右上のメニューを展開し、[Get Devived Table LookML...]を選択。

 

ビュー(View)ファイルをLookML上に作成

対象結果を踏まえた内容で、LookMLのビュー(View)定義が自動で生成されました!この内容を以てビュー(View)を作成するのですが、便利なことにウインドウ上部の『add it to your project』のリンクをクリックする事で、そのままビュー(View)が作れちゃいます。

対象プロジェクトとビュー(View)を指定して[Add]実行。

指定の内容でビューファイルが作成されました!(ちなみにSQL実行文については、セミコロン(;)が含まれている場合はここで除去してください。『;;』という値についてはLookMLで扱うものなので逆に削ってはいけません)

生成されているメジャーは初期状態では件数(count)のみとなりますので、必要であればここで追加しておきます。

また、この時に使っていたモデル(Model)のビュー(View)のinclude定義は以下のような値としていました。viewフォルダ配下に含めること、というルールとしています。

このため、生成されたビュー(View)ファイルはモデル構成直下に生成されていたため、認識しませんでした。なのでファイルをドラッグアンドドロップでviewフォルダ配下に移動。これでモデル(Model)設定でExploreの連携もちゃんと効くようになりました。

結果を探索してみます。ここまでくれば普通のビューと変わらず扱える感じです。

 

まとめ

というわけで、Lookerにおける派生テーブルの1つ、『SQL派生テーブル』に関する作成と操作に関する内容のご紹介でした。作成した派生テーブルに対する『永続性の追加』に関してはエントリを改めて実践・紹介してみたいと思います。

上記ご紹介したように、任意の実行SQL文からテーブル相当の要素を作成し、扱えるのは実際に試してみるとすごく便利だな、と思いました。お試しでちょっと色々探ってみたいというような場合、または分析担当者やDBに詳しい人が居ればその人に用意してもらったSQLをそのままこの仕組みに乗せれば分析対象要素がパッと出来てしまうので良いですね。もう1つの派生テーブルである『ネイティブ派生テーブル』との違い、局面によってどちらを使うべきかというのもあるようですので、その部分もまた改めて紹介したいと思います。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.